package com.niit.scala

import java.util.Scanner

/**
 * Date:2025/3/4
 * Author：Ys
 * Description:
 *
 *  总结：
 *   1.Scala中的Class 和 Java Class 是不一样的。不能在Scala中的Class文件做主程序的入口，一定是在object中。
 *   2.Scala是可以完美的调用Java中的所有类库
 *   3.如果多行代码写在一行内，则前边的语句必须以分号结尾，最后一条语句不需要分号
 *   4.Scala中常量分为两种：1.字面值常量 2.自定义常量
 *   5.var用来定义变量 val用来定义常量，格式： val/var 变量名:数据类型 = 值
 *   6.Scala可以自动根据变量值来推断数据类型
 *   7.插入值表达式可以有效避免大量的字符串拼接
 *    注意，在定义字符串前添加s"",在字符串中，可以使用${}来引用变量或者编写编写表达式
 */
object Base02 {

  def main(args: Array[String]): Unit = {
    //1.Scala的输入语句
    println("Hello Scala")

    //2.在控制台中输入，你想对右边的人要说的话 Scanner
    println("请输入你想对右边的人要说的话：")
    //println("我想对你说："+new Scanner(System.in).nextLine())

    //3.分号的使用  同一行代码，可以使用分号对代码进行分割
    println("你好啊");println("明天见");println("嗦粉吗？")

    //4.Scala的字面值(字面上的含义)  常量
    //(常量：不可以修改的数值称之为常量) Scala中的常量分为两种：1.字面值常量 2.自定义常量
    println(10) //10:整型 字面值常量
    println(-35) //-35:整型 字面值常量
    println(10.3) //10.3:浮点型 字面值常量
    println('a') //a:字符 字面值常量
    println("scala")//scala:字符串 字面值常量
    println(true,false) //true,false:布尔值 字面值常量
    //扩展：print打印可以打印多个值，每个值之间用逗号间隔
    println(null)//null:空值 字面值常量

    //5.变量 和  自定义常量
    /*
      Java :int a = 10;
      Scala 变量:var a:Int = 10
      Scala 常量：val a:Int = 10
     */
    val name:String = "Tom"
    var age:Int = 18
    println("姓名：",name,",年龄：",age)
    //name = "Tony"
    age= 35
    println("姓名：",name,",年龄：",age)

    //6.类型推断： Scala中定义变量或者常量可以使用类型推断，那么我们在定义时候就可以不用写类型了
    var a = 10
    val b = true
    println(a,b)

    //7.插入值表达式
    /*
      需求：请定义若干个变量，分别保存：张三  23 男
       最后用一个字符串保存这些信息
     */
      //传统方式
     val name1 = "张三"
     val age1 = 23
     val sex1 = "男"
     val res = "姓名："+name1+",年龄："+age1+",性别："+sex1
     println(res)
    //插入值表达式 方式
    val res1 = s"姓名：${name1},年龄：${age1},性别：${sex1}"
    println(res1)

  }

}
